package _Banque._TUN;

import _Banque.AgenceBancaire;
import _Banque.Banque;
import _Banque.Titulaire;
import _Tests.Tests;

//
//IUT de Nice / Departement informatique / Module APO-C++
//Annee 2008_2009 - Package _Banque
//
//Classe AgenceBancaire - Tests unitaires de la methode privee totalDepots
//                      (Cas nominaux)
//
//Auteur : K.Caucheteur - L.Rombi
//				test�

public class T_AgenceBancaire_N0_2 {
	
	public static void main (String[] args)throws Throwable {

		   Tests.Begin("_Banque.AgenceBancaire", "1.4.0");

		   String adresse_1= "Imm. Les Magnolias Bat. 2, 8 Bd Napoleon III - NICE (06000)";
		   String adresse_2= "Villa Beau Sejour, 115 Av. de la Grande Armee - PARIS (75000)";
		   String adresse_3= "Agence des bosquets 8, avenue Clemenceau - Toulon (83000)";

		   Titulaire dupuy = new Titulaire("DUPUY", "melanie", "1978/04/25", adresse_1);
		   Titulaire durand = new Titulaire("Durand", "Paul", "1981/01/03",  adresse_2);
		   
		      Tests.Design("Controle de la methode privee totalDepots", 3);

		      AgenceBancaire ag1 = new AgenceBancaire(new Banque(), adresse_3);


		         Tests.Case("Operations sur un premier compte courant"); {

		            ag1.ouvrirCompte(dupuy);
		            
		            ag1.executer(8000001, 'V', "Cheque 567893", 220f);
		            Tests.Unit(220, ag1.totalDepots(dupuy.toString(), 'C'));

		            ag1.executer(8000001, 'V', "Cheque 567893", 1000);
		            Tests.Unit(1220, ag1.totalDepots(dupuy.toString(), 'C'));
		         }

		         Tests.Case("Operations sur un second compte courant"); {

		            ag1.ouvrirCompte(dupuy);
		            
		            ag1.executer(8000002, 'V', "Cheque 567894", 100);
		            Tests.Unit(1320, ag1.totalDepots(dupuy.toString(), 'C'));

		            ag1.executer(8000002, 'V', "Cheque 567900", 600);
		            Tests.Unit(1920, ag1.totalDepots(dupuy.toString(), 'C'));
		         }

		         Tests.Case("Operations sur un premier compte epargne"); {

		            ag1.ouvrirCompte(durand, 0.04f);
		            
		            ag1.executer(4000001, 'V', "Cheque 411200", 2000);
		            Tests.Unit(2000, ag1.totalDepots(durand.toString(), 'E'));

		            ag1.executer(4000001, 'V', "Cheque 567893", 3000);
		            Tests.Unit(5000, ag1.totalDepots(durand.toString(), 'E'));
		         }

		         Tests.Case("Operations sur un second compte epargne"); {

		            ag1.ouvrirCompte(dupuy, 0.05f);
		            
		            ag1.executer(4000002, 'V', "Cheque 567900", 500);
		            Tests.Unit(500, ag1.totalDepots(dupuy.toString(), 'E'));
		         }

		   Tests.End();
		}

}
